Exploring community structure of software Call Graph and its applications in class cohesion measurement

نویسندگان

  • Yu Qu
  • Xiaohong Guan
  • Qinghua Zheng
  • Ting Liu
  • Lidan Wang
  • Yuqiao Hou
  • Zijiang Yang
چکیده

Many complex networked systems exhibit natural divisions of network nodes. Each division, or community, is a densely connected subgroup. Such community structure not only helps comprehension but also finds wide applications in complex systems. Software networks, e.g., Class Dependency Networks, are such networks with community structures, but their characteristics at the function or method call granularity have not been investigated, which are useful for evaluating and improving software intra-class structure. Moreover, existing proposed applications of software community structure have not been directly compared or combined with existing software engineering practices. Comparison with baseline practices is needed to convince practitioners to adopt the proposed approaches. In this paper, we show that networks formed by software methods and their calls exhibit relatively significant community structures. Based on our findings we propose two new class cohesion metrics to measure the cohesiveness of object-oriented programs. Our experiment on 10 large open-source Java programs validate the existence of community structures and the derivedmetrics give additional and useful measurement of class cohesion. As an application we show that the new metrics are able to predict software faults more effectively than existing metrics. © 2015 Elsevier Inc. All rights reserved.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Some finite groups with divisibility graph containing no triangles

Let $G$ be a finite group. The graph $D(G)$ is a divisibility graph of $G$. Its vertex set is the non-central conjugacy class sizes of $G$ and there is an edge between vertices $a$ and $b$ if and only if $a|b$ or $b|a$. In this paper, we investigate the structure of the divisibility graph $D(G)$ for a non-solvable group with $sigma^{ast}(G)=2$, a finite simple group $G$ that satisfies the one-p...

متن کامل

Improving Class Cohesion Measurement: Towards a Novel Approach Using Hierarchical Clustering

Class cohesion is considered as one of the most important object-oriented software attributes. High cohesion is, in fact, a desirable property of software. Many different metrics have been suggested in the last several years to measure the cohesion of classes in object-oriented systems. The class of structural object-oriented cohesion metrics is the most investigated category of cohesion metric...

متن کامل

The impact of accounting for special methods in the measurement of object-oriented class cohesion on refactoring and fault prediction activities

Class cohesion is a key attribute that is used to assess the design quality of a class, and it refers to the extent to which the attributes and methods of the class are related. Typically, classes contain special types of methods, such as constructors, destructors, and access methods. Each of these special methods has its own characteristics, which can artificially affect the class cohesion mea...

متن کامل

Graph Clustering Evaluation Metrics as Software Metrics

ion. Therefore, the aim of this paper is to investigate existing GCE metrics as metrics reflecting cohesion of software modules. The rest of the paper is structured as follows. Related work is presented in Section 2. Graph clustering evaluation metrics explored in this work as software metrics are defined in the next section of the paper. Section 4 explains how GCE metrics can be applied to gra...

متن کامل

Improving the quality of software cohesion metrics through dynamic analysis

Class cohesion is an important object oriented software quality attribute. Assessing the class cohesion and improving the class quality accordingly during the object oriented design phase allows for cheaper management of the later phases. Most of the cohesion metrics planned in the journalism describes static cohesion measurement at design level. Static metrics is a measure that is applied at t...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:
  • Journal of Systems and Software

دوره 108  شماره 

صفحات  -

تاریخ انتشار 2015